%======================================================================
%----------------------------------------------------------------------
%               XX                           X
%                                            X
%               XX    XXX   XXX   XXX   XXX  X  XXXX
%                X   X   X X   X X   X X   X X X
%                X   XXXXX XXXXX XXXXX X     X  XXX
%                X   X     X     X     X   X X     X
%               XXX   XXX   XXX   XXX   XXX  X XXXX
%----------------------------------------------------------------------
%               SPECIFICATION FOR COMMON IEEE STYLES
%----------------------------------------------------------------------
%               Gregory L. Plett, Istv\'{a}n Koll\'{a}r.
%======================================================================
\documentclass[%
    %draft,
    %submission,
    %compressed,
    a4paper,
    %12pt,
    10pt,
    final,
    %technote,
    %internal,
    %submitted,
    %inpress,
    %reprint,
    %titlepage,
    notitlepage,
    %anonymous,
    narroweqnarray,
    inline,
    oneside,
    %invited,
    %conference
    article
    ]{ieee}

%\documentclass[a4paper,12pt]{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{epsfig}
\usepackage{epstopdf}

\newcommand{\latexiie}{\LaTeX2{\Large$_\varepsilon$}}

%\usepackage{ieeetsp}    % if you want the "trans. sig. pro." style
%\usepackage{ieeetc}    % if you want the "trans. comp." style
%\usepackage{ieeeimtc}    % if you want the IMTC conference style

% Use the `endfloat' package to move figures and tables to the end
% of the paper. Useful for `submission' mode.
%\usepackage {endfloat}

% Use the `times' package to use Helvetica and Times-Roman fonts
% instead of the standard Computer Modern fonts. Useful for the
% IEEE Computer Society transactions.
%\usepackage{times}
% (Note: If you have the commercial package `mathtime,' (from
% y&y (http://www.yandy.com), it is much better, but the `times'
% package works too). So, if you have it...
%\usepackage {mathtime}

% for any plug-in code... insert it here. For example, the CDC style...
%\usepackage{ieeecdc}

\begin{document}

%----------------------------------------------------------------------
% Title Information, Abstract and Keywords
%----------------------------------------------------------------------
\title[]{
	Trabajo Práctico Especial 1: Redes Neuronales}

% format author this way for journal articles.
% MAKE SURE THERE ARE NO SPACES BEFORE A \member OR \authorinfo
% COMMAND (this also means `don't break the line before these
% commands).
%\author[PLETT AND KOLL\'{A}R]{Gregory L. Plett\member{Student
%       Member},\authorinfo{G.\,L.\,Plett is with the Department of Electrical
%       Engineering, Stanford University, Stanford, CA 94305--9510.
%       Phone: $+$1\,650\,723--4769, e-mail: glp@simoon.stanford.edu}%
%\and{}and Istv\'{a}n Koll\'{a}r\member{Fellow}\authorinfo{I.\
%       Koll\'{a}r is with the Department of Measurement and Information
%       Systems, Technical University of Budapest, 1521 Budapest, Hungary.
%       Phone: $+$\,36\,1\,463--1774, fax: +\,36\,1\,463--4112,
%       e-mail: kollar@mmt.bme.hu}
%}
\author{
     Luciano Mangiarotti,
\and Augusto Nizzo McIntosh,
\and Tom\'as Alvarez
}

% format author this way for conference proceedings
%\author[PLETT AND KOLL\'{A}R]{%
        %Gregory L. Plett\member{Student Member},\authorinfo{%
        %Department of Electrical Engineering,\\
        %Stanford University, Stanford, CA 94305-9510.\\
        %Phone: $+$1\,650\,723-4769, email: glp@simoon.stanford.edu}%
%\and{}and%
%\and{}Istv\'{a}n Koll\'{a}r\member{Fellow}\authorinfo{%
        %Department of Measurement and Instrument Engineering,\\
        %Technical University of Budapest, 1521 Budapest, Hungary.\\
        %Phone: $+$\,36\,1\,463-1774, fax: +\,36\,1\,463-4112,
        %email: kollar@mmt.bme.hu}
%}

%\journal{IEEE Trans.\ on Instrum.\ Meas.}
%\titletext{, VOL.\ 46, NO.\ 6, DECEMBER\ 1997}
%\ieeecopyright{0018--9456/97\$10.00 \copyright\ 1997 IEEE}
%\lognumber{xxxxxxx}
%\pubitemident{S 0018--9456(97)09426--6}
%\loginfo{Manuscript received September 27, 1997.}
%\firstpage{1217}

%\confplacedate{Ottawa, Canada, May 19--21, 1997}

\maketitle

%\begin{keywords}
%Style file, \latexiie, Microsoft Word, IEEE Publications, Instrumentation
%and Measurement Technology Conference, IMTC.
%\end{keywords}

%----------------------------------------------------------------------
% SECTION I: Introduction
%----------------------------------------------------------------------
\section{Introducci\'on}

\PARstart El objetivo de este trabajo pr\'actico es utilizar un perceptr\'on multicapa para aprender un problema asignado. Dicho perceptr\'on fue codificado en lenguaje \textit{MATLAB} compatible con \textit{Octave}.
Los par\'ametros que caracterizan a la red neuronal son los siguientes:

\begin{itemize}
\item $\eta$: Learning rate
% escuche decir a los ayudantes que dejemos de hacer referencia a 'neuronas' y hgamos referencia a 'unidades'
% CHECKED!
\item $w_{ij}$: Valor del peso de la conexi\'on entre la unidad $i$ de una capa con la unidad $j$ de la capa anterior
\item $g$: Funci\'on de activaci\'on
\item $M$: Cantidad de patrones utilizados para el entrenamiento de la red
\item $b$: Vector de salidas deseadas de la red
\item $\alpha$: Momentun
\item $a$: Magnitud en la que aumenta $\eta$ (Utilizado para $\eta$ adaptativo)
\item $b$: Porcentaje en el que disminuye $\eta$ (Utilizado para $\eta$ adaptativo)
\end{itemize}

La funci\'on que el perceptr\'on multicapa debe aprender es:

\begin{equation}
\label{e1}
z = f(x,y) = e^{-(x + 1)^2 - (y - 1)^2} + e^{-(x - 1)^2 - (y + 1)^2}
\end{equation}
con $x,y \in [-3,3]$.\\
En la Figura \ref{g1} se puede observar una gr\'afica de la funci\'on mencionada con los valores de $x$ e $y$ en el intervalo correspondiente usando un \textit{step} de $0.1$ para graficar.
Debido a las características de la funci\'on presentada, se utiliza una red neuronal multicapa con exactamente dos entradas y una salida ya que el dominio de la funcion es $[-3,3]\times[-3,3] \subset \mathbb{R}$ y la imagen es $\mathbb{R}$.
\\
En la secci\'on II se tratan las consideraciones que se han tenido en el desarrollo y el diseño de la red.
En la secci\'on III se tratan los resultados y conclusiones obtenidos a partir del entrenamiento de la red considerando las distintas arquitecturas y configuraciones utilizadas.

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{figua1.eps}
        \caption{Funci\'on a aprender por la red}
        \label{g1}
\end{figure}


%----------------------------------------------------------------------
% SECTION II: The Document Life-Cycle
%----------------------------------------------------------------------

\section{Desarrollo}

A lo largo de esta secci\'on se tratan las consideraciones que se han tenido en cuenta para el diseño de la red neuronal.\\
Como se comenta en la sección anterior, se utiliza una configuración de dos entradas con una única salida. Tanto la cantidad de capas ocultas como la cantidad de neuronas que posee cada una de estas capas se fue modificando para observar los resultados obtenidos con cada una de las configuraciones, esto se analiza en detalle en la pr\'oxima secci\'on.\\

%En una red neuronal multicapa, se agrega un valor de umbral seteado en $-1$, cuya conexión sináptica con las neuronas de la capa superior posee un peso el cual se va a ajustando al igual que todos los pesos que poseen las conexiones de la red. Es importante remarcar que en este tipo de red, la neurona de umbral correspondiente a una capa oculta de la red está conectada con las neuronas de la capa siguiente pero no con las neuronas de la capa anterior.

%La siguiente subsección se la dedica a tratar las distintas funciones de activaci\'on utilizadas como as\'i tambi\'en el motivo por el cu\'al se eligieron en cada caso.
En las subsecciones siguientes se tratan los temas m\'as relevante tenidos en cuenta para la realizaci\'on del trabajo, los mismos se listan a continuaci\'on:
\begin{itemize}
\item Funci\'on de activaci\'on
\item Elecci\'on de los patrones de entrenamiento
\item Algoritmos de mejora para el \textit{backpropagation}
\item Capacidad de generalizaci\'on de la red
\end{itemize}


%\begin{figure}
%        \centering
%		\includegraphics[width = \linewidth,keepaspectratio=true]{3D}
%        \caption{($U_n$, $U_{n+1}$, $U_{n+2}$) para 6000 valores}
%        \label{g2}
%\end{figure}

\subsection{Funciones de activaci\'on}

Las tres funciones de activaci\'on consideradas para este trabajo son las siguientes:

\begin{equation}
\label{e2}
g(h) = tanh(\beta h)
\end{equation}

\begin{equation}
\label{e3}
g(h) = \frac{1}{1+e^{-2\beta h}}
\end{equation}

\begin{equation}
\label{e4}
g(h) = \beta h
\end{equation}

El par\'ametro $\beta$ que se observa en \eqref{e2}, \eqref{e3} y \eqref{e4} es una constante. En \eqref{e2}, por ejemplo, mientras m\'as grande es dicho valor, m\'as cerca del escal\'on. En \eqref{e4} por otro lado, determina la pendiente de la funci\'on. %y eso que implica??, en que afecta la pendiente a la funcion lineal? Creo que cristina habi dicho algo de que permitia que la salida no de ``saltos'' grandes al variar un poco la entrada.
Se puede apreciar que tanto \eqref{e2} como \eqref{e3} son funciones diferenciables y acotadas, en la primera $g(h) \in [-1,1]$ mientras que en la segunda $g(h) \in [0,1]$.\\ %habria que arreglar esto porque en definitiva la lineal tambien es diferenciable (aunque no acotada!)
En todas las capas de la red se utiliza una \'unica funci\'on de activaci\'on \eqref{e2} o \eqref{e3}, y nunca combinaciones entre ellas en las diferentes capas. En la \'ultima capa, la unidad de salida, se utiliza \eqref{e4} ya que la salida de la funci\'on \eqref{e1} no est\'a acotada.

\subsection{Elecci\'on de los patrones de entrenamiento}

Es de considerable importancia la elecci\'on de los patrones con los cuales se va a entrenar la red, ya que en caso de que se realice una mala elecci\'on la red puede no generalizar e incluso tampoco memorizar.
En este caso particular, la elecci\'on se realiza observando la Figura 1 e identificando donde se encuentran los picos de la funci\'on. Se ve por la forma de la misma que en los puntos $[-1,1]$ y $[1,-1]$ se encuentran dichos picos y luego a medida que nos alejamos va descendiendo.
Por lo tanto, se utiliza una funci\'on de distribuci\'on normal que concentra la elecci\'on de una mayor cantidad de patrones alrededor de los puntos mencionados y vaya disminuyendo a medida que nos alejamos de los mismos.

\subsection{Algoritmos de mejora para el \textit{backpropagation}}
Se implementaron tres m\'etodos de mejora para el algoritmo de \textit{backpropagation}, a continuaci\'on se listan y se explica cada uno. En la pr\'oxima secci\'on se muestra como el agregar o quitar alguno de estos m\'etodos de mejora afecta en el aprendizaje de la red.

\begin{itemize}
\item $\eta$ adaptativo
\item Momentum
\item Variaci\'on de 0.1 a la derivada de la funci\'on de activaci\'on
\end{itemize}

\subsubsection{$\eta$ adaptativo}

Una de las posibles mejoras es variar el valor del par\'ametro $\eta$, que representa el \textit{learning rate}. El problema reside en que  si se escoje un $\eta$ constante muy peque\~no, la red tiende a aprender a un ritmo muy lento, es decir requiere un mayor esfuerzo computacional, por otro lado si $\eta$ se elije suficientemente grande, el error puede comenzar a oscilar e incluso diverger. Adem\'as es posible que una muy buena elecci\'on de $\eta$ inicialmente, no termine siendo efectiva a medida que avanzan las \'epocas y el error cuadr\'atico medio disminuye, y comience a oscilar o diverger luego de transcurridas una determinada cantida de \'epocas. Es por esto que variar $\eta$ logra mejorar la performance del algoritmo de backpropagation. Este par\'ametro se incrementa en una constante, y se decrementa en un porcentaje del valor que posee en ese momento (\'epoca). La modificaci\'on de este par\'ametro se realiza a partir de la variaci\'on del error cuadr\'atico medio, si el mismo se decrementa entre una \'epoca y otra (as\'i fue como se utiliz\'o), el valor de $\eta$ va a crecer y si la variaci\'on del error aumenta se va a decrementar. En caso de que la variaci\'on del error sea $0$, la variaci\'on de $\eta$ tambi\'en lo es.

\subsubsection{Momentum}

La mejora del momentum consta de agregar un término a la actualización de pesos, que contenga información de la actualización previa de pesos, obtenida luego de procesar el patr\'on anterior. Dicho termino introduce en cada conexi\'on una inercia o \textit{momentum} para que los pesos cambien su direcci\'on en el sentido de la fuerza promedio que recibe, en vez de oscilar ampliamente. Esto trae como consecuencia que se incremente el ritmo de aprendizaje de la red como si se incrementase $\eta$ con la diferencia que no produce oscilaciones divergentes en el error. Para dicho ajuste se utiliza una constante $alpha$, que se multiplica a la actualizaci\'on previa de pesos. Dicha constante cumple con la siguiente condici\'on: $0 \leq \alpha \leq 1$.

\subsubsection{Variaci\'on de 0.1 a la derivada de la funci\'on de activaci\'on}
%hmm, no habra que poner que son los delta_i?? no me dice nada esto asi escrito, idem |h_i|. A que te referis con eliminar zonas planas?
% zonas planas de la superficie de costo ? habria que aclararlo me parece no se...
Esta mejora consta de agregarle una pequeña perturbaci\'on de 0.1 a la derivada de la funci\'on de activaci\'on en el calculo de los $\delta_{i}$, que representan los errores obtenidos. Esta mejora permite mantener $\delta$ distinto de $0$ por mas que $|h_{i}|$ sea grande, siendo $|h_{i}|$ el valor absoluto de la suma pesada de la unidad $i$.

\subsection{Capacidad de generalizaci\'on de la red}

Otro de los puntos importantes a considerar en este trabajo es la capacidad de generalizar que tiene la red. Para ello es importante definir dos tipos de conjuntos de patrones, un conjunto de entrenamiento y un conjunto de testeo.\\
El objetivo es que a partir de un determinado conjunto de patrones de entrenamiento, se logre obtener la salida esperada con el menor error posible. A partir del error que se obtenga en la generalizaci\'on se va a poder determinar que tan bien generaliza la red.
En la pr\'oxima secci\'on se muestran los resultados obtenidos a partir de este proceso y se sacan las conclusiones pertinentes al mismo.

\subsection{Método de ajuste: \textit{Rollback} de pesos}

Uno de los m\'etodos que utilizamos para intentar disminuir el error fue realizar \textit{rollback} de los pesos de la siguiente manera:
Se procesa toda una \'epoca de aprendizaje y se calcula el error cuadr\'atico medio de la misma, si este error es superior al error calculado en la \'epoca anterior, o sea, el error aument\'o, se descarta la actualizaci\'on de pesos que se realiz\'o durante la \'epoca y se restauran los que hab\'ia antes de comenzarla, luego se ajusta el valor de $\eta$ como corresponda y se procesa la siguiente \'epoca con los pesos restaurados y el $\eta$ corregido para si ver si se obtienen mejores resultados.\\
Si bien este m\'etodo no se lo encontr\'o comentado en la bibliograf\'ia b\'asica, se tuvo la idea de probarlo y los resultados que se obtuvieron fueron positivos.

%\begin{equation}
%f_X(x) = \left \{ \begin{matrix}
%\frac{2(x-a)}{(b-a)(c-a)} & \mbox{si }a \leq x \leq b
%\\ \frac{2(c-x)}{(c-b)(c-a)} & \mbox{si }b \leq x \leq c
%\\ 0 & \mbox{otro caso} \end{matrix}\right.  
%\end{equation}

%\begin{equation}
%F_X(x) = \left \{ \begin{matrix} 0 & \mbox{si } x < a
%\\ \frac{(x-a)^2}{(b-a)(c-a)} & \mbox{si }a \leq x \leq b
%\\ 1 - \frac{(c-x)^2}{(c-b)(c-a)} & \mbox{si }b \leq x \leq c
%\\ 1 & \mbox{si } x > 1 \end{matrix}\right.  
%\end{equation}

%\begin{equation}
%X = \left \{ \begin{matrix} 
%a + \sqrt{(c-a)(b-a)u} & \mbox{si }0 \leq u \leq (b-a)(c-a)
%\\ c - \sqrt{(c-a)(c-b)(1-u)} & \mbox{si }(b-a)(c-a) < u \leq 1
%\end{matrix}\right.  
%\end{equation}

%\begin{figure}
%        \centering
%		\includegraphics[width = \linewidth,keepaspectratio=true]{triag}
%        \caption{Distribuci\'on muestral de la variable X}
%        \label{g1}
%\end{figure}

%----------------------------------------------------------------------
% SECTION III: Specifications
%----------------------------------------------------------------------
\section{Resultados y Conclusiones}

En esta secci\'on se exponen los resultados obtenidos a partir de entrenar una red con una determinada configuraci\'on. As\'i como tambi\'en se muestran conclusiones y razonamientos sobre los resultados obtenidos, al igual que comparaciones entre las distintas arquitecturas de red adoptadas.\\
\\

\subsection{Primera Configuraci\'on}

La primer configuraci\'on que se analiza es la siguiente:

\begin{itemize}
\item $g(h) = tanh(\beta h)$
\item $\beta = 1.4$
\item $\eta = 10^{-3}$
\item $a = 10^{-7}$
\item $b = 0.5$
\item No se le realiza perturbaci\'on a $g'(h)$
\item Momentum = 0.9
\item $M = 200$
\item Epocas = 20000
\item Pesos inicializados aleatoriamente entre -0.5 y 0.5
\item Se utilizan 3 capas ocultas con 20 unidades cada una
\item Se utiliza \textit{rollback} de pesos
\end{itemize}

En la Figura \ref{g2} se puede apreciar la distribuci\'on de patrones elegidos para entrenar el perceptr\'on multicapa. Los mismos fueron escogidos de manera que la mayor densidad se encuentre en el centro de los mont\'iculos y sus alrededores, mientras que hay una menor cantidad situada en la superficie mas plana. Esto es para lograr que la red consiga aprender correctamente estos puntos.\\
El error cuadr\'atico medio obtenido para el entrenamiento de la red a lo largo de las $20000$ \'epocas mencionadas fue del orden de $10^{-3}$.

La Figura \ref{g3} permite analizar el error obtenido una vez que la red ya esta entrenada, el mismo se obtuvo realizando la diferencia entre la Figura \ref{g1} y la grafica que se obtiene de evaluar la red en los mismos puntos que se utilizaron para la Figura \ref{g1} solo que utilizando la red neuronal para obtener la salida. Esta gr\'afica nos permite apreciar el error de generalizaci\'on que tiene la red.\\
Al analizar la Figura \ref{g3} vemos que en las zonas cercanas a los puntos $(x,y) = (-1,1)$ y $(x,y) = (1,-1)$ el error es muy bajo, ya que la cantidad de patrones con los que se entrena a la red en esos puntos fue mas alta, y el mayor error se observa en dos extremos donde la cantidad de patrones con los que se entren\'o fue practicamente nula en esas zonas en particular.

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf1Patterns.eps}
        \caption{Patrones utilizados para el entrenamiento en la configuraci\'on 1}
        \label{g2}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf1Error.eps}
        \caption{Error obtenido para la configuraci\'on 1}
        \label{g3}
\end{figure}


\subsection{Segunda Configuraci\'on}

La pr\'oxima configuraci\'on que se expone es para analizar la capacidad de aprendizaje y generalizaci\'on de la red neuronal sin el uso de m\'etodos de mejora para el algoritmo de \textit{backpropagation} como el $\eta$ adaptativo y el \textit{momentum}.\\
La configuraci\'on adoptada es la que se observa a continuaci\'on:

\begin{itemize}
\item $g(h) = tanh(\beta h)$
\item $\beta = 1.4$
\item $\eta = 10^{-4}$
\item $a = 0$
\item $b = 0$
\item No se le realiza perturbaci\'on a $g'(h)$
\item Momentum = 0
\item $M = 200$
\item Epocas = 20000
\item Pesos inicializados aleatoriamente entre -0.5 y 0.5
\item Se utilizan 3 capas ocultas con 20 unidades cada una
\end{itemize}

Como se ve tanto los par\'ametros correspondientes al $\eta$ adaptativo como el \textit{momentum} fueron seteados en $0$ y los mismos no influyen en el aprendizaje de la red.\\
Las Figuras \ref{g4}, \ref{g5}, \ref{g6} y \ref{g7} reflejan los resultados obtenidos a partir de la configuraci\'on mencionada.\\
En la Figura \ref{g4} se observa la distibuci\'on de patrones de entrenamiento para la red, la cual es similar a la de la configuraci\'on anterior, con mayor densidad de puntos en los focos ubicados en $(x,y) = (-1,1)$ y $(x,y) = (1,-1)$.
En la Figura \ref{g5} se puede ver la gr\'afica obtenida tomando $x$ e $y$ de $-3$ a $3$ con un \textit{step} de $0.1$, igual que para la Figura \ref{g1}, solo que usando la salida obtenida a partir de la red previamente entrenada. Se observa como la gr\'afica presenta grandes similitudes con la Figura \ref{g1}, lo cual denota el buen aprendizaje y capacidad de generalizaci\'on que tuvo la red. La Figura \ref{g6} muestra las zonas donde se puede observar un mayor error, se ve que nuevamente es en los extremos por las mismas razones descriptas anteriormente.\\

En la Figura \ref{g7} se observa como desciende el error cuadr\'atico medio a lo largo de las \'epocas durante el entrenamiento. El error en la primer \'epoca es de aproximadamente $82$ y no se observa en dicha figura ya que modificar\'ia la escala de la misma y los errores m\'as pequeños no podr\'ian apreciarse.\\
\\
La conclusi\'on que se obtiene es que la red aprende con la precisi\'on que se observa en la figura \ref{g7} ya que el $\eta$ utilizado es muy pequeño dada la configuraci\'on, por lo tanto, no se observan oscilaciones en el error. Fue comprobado que con la misma configuraci\'on pero usando un $\eta$ un orden de magnitud mayor el error desciende m\'as r\'apidamente pero cuando se aproxima a un orden de magnitud de $10^{-2}$ empieza a oscilar y no se logra obtener una mejor precisi\'on.

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf2Patterns.eps}
        \caption{Patrones utilizados para el entrenamiento en la configuraci\'on 2}
        \label{g4}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf2Net.eps}
        \caption{Funci\'on obtenida luego de evaluar los patrones en la red entrenada para la configuraci\'on 2}
        \label{g5}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf2Error.eps}
        \caption{Error obtenido para la configuraci\'on 2}
        \label{g6}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf2ErrorPorEpocas.eps}
        \caption{Error por \'epoca para la configuraci\'on 2}
        \label{g7}
\end{figure}

\subsection{Tercer configuraci\'on}

La configuraci\'on que se muestra a continuaci\'on se asemeja a la anterior en el sentido que no utiliza m\'etodos de mejora para el algoritmo \textit{backpropagation} pero en este caso se utiliza la funci\'on de activaci\'on exponencial en lugar de la tangente hiperb\'olica.\\
La configuraci\'on adoptada es la que se observa a continuaci\'on:

\begin{itemize}
\item $g(h) = \frac{1}{1+e^{-2\beta h}}$
\item $\beta = 1.4$
\item $\eta = 10^{-4}$
\item $a = 0$
\item $b = 0$
\item No se le realiza perturbaci\'on a $g'(h)$
\item Momentum = 0
\item $M = 200$
\item Epocas = 20000
\item Pesos inicializados aleatoriamente entre -0.5 y 0.5
\item Se utilizan 3 capas ocultas con 20 unidades cada una
\end{itemize}

En la Figura \ref{g8} se observa los patrones utilizados para el entrenamiento, los cuales fueron generados de manera similar a los de las configuraciones anteriores.\\
En la Figura \ref{g9} y \ref{g10} se observan los resultados del entrenamiento de la red y el error obtenido respectivamente. Vemos como nuevamente aparece un error mayor en un borde de la gr\'afica, el motivo es el mismo que el mencionado para las configuraciones previamente detalladas.\\
\\
En las Figuras \ref{g11} y \ref{g12} se observan dos representaciones del error respecto de las \'epocas para la misma configuraci\'on. En la segunda representaci\'on se eliminaron los primeros cuatro puntos ya que al ser el error bastante alto al inicio, no se puede apreciar detalladamente el valor del error por \'epoca y las oscilaciones que se producen a medida que avanza el algoritmo.
En ambas se considera el error cada $200$ \'epocas.

Se observa que la tercer configuracion es id\'entica a la segunda solo que en la primera se utiliza \eqref{e2} como funci\'on de activaci\'on y en la tercer se usa \eqref{e3}. Se ve como la utilizaci\'on de la funci\'on exponencial en este caso provoca un mayor nivel de oscilaciones en el error mientras que al utilizar la funci\'on de activaci\'on tangencial el error esta en constante descenso.

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf3Patterns.eps}
        \caption{Patrones utilizados para el entrenamiento en la configuraci\'on 3}
        \label{g8}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf3Net.eps}
        \caption{Funci\'on obtenida luego de evaluar los patrones en la red entrenada para la configuraci\'on 3}
        \label{g9}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf3Error.eps}
        \caption{Error obtenido para la configuraci\'on 3}
        \label{g10}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf3ErrorPorEpoca.eps}
        \caption{Error por \'epoca para la configuraci\'on 3}
        \label{g11}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf3ErrorPEpocaMenos4.eps}
        \caption{Error por \'epoca sin los primeros cuatro puntos para la configuraci\'on 3}
        \label{g12}
\end{figure}


\subsection{Cuarta configuraci\'on}

En la siguiente y \'ultima configuraci\'on que se presenta en este informe, se procede a evaluar la capacidad de aprendizaje y generalizaci\'on del perceptr\'on multicapa utilizando una funci\'on de activacion exponencial junto con los m\'etodos de mejora del algortimo de \textit{backpropagation}. Adem\'as de eso se propone una arquitectura de red diferente a la que se ven\'ia utilizando.\\
Por otro lado, teniendo en cuenta que en configuraciones anteriores se observa un elevado error en zonas de la superficie cercanas a los bordes, se le adicionaron patrones distribuidos uniformemente en los bordes de la superficie.
La configuraci\'on adoptada es:

\begin{itemize}
\item $g(h) = \frac{1}{1+e^{-2\beta h}}$
\item $\beta = 1.3$
\item $\eta = 0.05$
\item $a = 10^{-3}$
\item $b = 0.16$
\item Se le realiza perturbaci\'on de $0.1$ a $g'(h)$
\item Momentum = 0.85
\item $M = 192$
\item Epocas = 40000
\item Pesos inicializados aleatoriamente entre $-0.4$ y $0.4$
\item Se utilizan 2 capas ocultas con 20 unidades cada una
\item Se utiliza \textit{rollback} de pesos
\end{itemize}

En la Figura \ref{g13} se observa la distribuci\'on de patrones. Como se puede ver, hay una mayr cantidad de patrones en los bordes de la superficie, de esta manera se va a proceder a estudiar si se obtiene un error m\'as bajo en los bordes.
En la Figura \ref{g14} se puede ver como la superficie obtenida luego de entrenar la red es mucho m\'as cercana a la de la Figura \ref{g1}, lo cu\'al da muestra de la capacidad de generalizaci\'on de la red. La misma tambi\'en da un indicio de un error mucho menor, lo cu\'al se puede afirmar observando la Figura \ref{g15}. Si bien se puede ver un error un poco m\'as elevado en un borde de la superficie, vale rescatar que el mismo es un orden de magnitud inferior a la de las configuraciones anteriormente estudiadas en cualquier punto de la superficie.\\
\\
En la figura \ref{g16} se observa el error por cada $100$ \'epocas. Por cuestiones de escala en el gr\'afico y para poder observar la oscilaci\'on del error cuando este alcanza un error del orden de $10^{-3}$ se omitieron los errores de las primeras \'epocas, aunque estas son de un orden de magnitud igual o superior a $10^{1}$.
\\
Si bien el error oscila en ciertas \'epocas, tiene tendencia en bajada, la cual es favorecida tanto por la utilizaci\'on del $\eta$ adaptativo como del \textit{momentum}, dichos m\'etodos de mejora trabajan conjuntamente y cuando se ajusta el $\eta$ y el error disminuye, el \textit{momentum} le da un envi\'on a los pesos en dicha direcci\'on.
\\
\\
A lo largo del desarrollo de todo este trabajo, se ha entrenado la red con una gran variedad de configuraciones y aquitecturas. Por razones obvias no se ha colocado la totalidad en este informe, pero se han seleccionado las que a nuestro criterio han sido las m\'as significativas por los resultados obtenidos.\\
En base al an\'alisis realizado a lo largo de este trabajo concluimos que la configuraci\'on m\'as \'optima obtenida es esta \'ultima debido al bajo error que se ha podido lograr en todos los puntos considerados de la superficie.
%Vale notar que en ninguna de las arquitecturas previamente explicadas se ha utilizado \'unicamente una capa oculta. Esto se debe a que no se observa una buena performance para una configuraci\'on de ese estilo ya que no se logra hacer bajar el error a una magnitud similar a aquellas arquitecturas mostradas con dos o tres capas ocultas en una cantidad de \'epocas similar. Para dar una idea, las pruebas realizadas con una sola capa tienen un error del orden de $10^{1}$ luego de procesadas $20000$ \'epocas de entrenamiento.

\subsection{Conclusi\'on General}

Se puede concluir que las redes neuronales son capaces de aprender la funci\'on estudiada en este trabajo, pero las distintas arquitecturas y configuraciones de dichas redes son las que nos permiten aprender el problema con un determinado error y costo computacional. Es a juicio del usuario de la red el decidir la precisi\'on con la que quiere aprender el problema, por lo cual es de suma importancia tener un amplio conocimiento sobre el rol de cada uno de los par\'ametros de la red para poder ajustarlos de tal manera que le permita a la red aprender con la precisi\'on que se desea.

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf4Patterns.eps}
        \caption{Error por \'epoca para la configuraci\'on 4}
        \label{g13}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf4Net.eps}
        \caption{Funci\'on obtenida luego de evaluar los patrones en la red entrenada para la configuraci\'on 4}
        \label{g14}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf4Error.eps}
        \caption{Error obtenido para la configuraci\'on 4}
        \label{g15}
\end{figure}

\begin{figure}
        \centering
		\includegraphics[width = \linewidth,keepaspectratio=true]{conf4ErrorPorEpoca.eps}
        \caption{Error por \'epoca para la configuraci\'on 4}
        \label{g16}
\end{figure}

%\begin{figure}
%        \centering
%		\includegraphics[width = \linewidth,keepaspectratio=true]{conf3ErrorPEpocaMenos4.eps}
%        \caption{Error por \'epoca sin los primeros cuatro puntos para la configuraci\'on 3}
%        \label{g15}
%\end{figure}

%\section{Simulaci\'on del sistema}

%Mediante el metodo de Montecarlo, obtenemos un set de variables $T_i$ donde cada $T_i$ es la media de
%cien realizaciones de la variable aleatoria $T_{enterprise}$.
%Las $T_i$ tambi\'en son variables aleatorias, hacemos simulaciones hasta que se cumple que $\frac{St_{n-1, 0.95}}{<T>\sqrt{n}} < 0.05$, siendo $<T>$ y $S$ la media y el desv\'io estandar del set de variables $T_i$ respectivamente y $n$ el n\'umero de simulaciones. Se puede observar en los graficos \ref{g1} y \ref{g2} como disminuye el desv\'io y se estabiliza la media.

%\begin{figure}
%        \centering
%		\includegraphics[width = \linewidth,keepaspectratio=true]{media_vuelo.eps}
%        \caption{Media en funcion de la cantidad de simulaciones}
%        \label{g1}
%\end{figure}

%\begin{figure}
%        \centering
%		\includegraphics[width = \linewidth,keepaspectratio=true]{desvio.eps}
%        \caption{Desvio estandar en funcion de la cantidad de simulaciones}
%        \label{g2}
%\end{figure}

%----------------------------------------------------------------------
% SECTION
%----------------------------------------------------------------------

%\section{Resultados y conclusi\'on}

%Es interesante que observemos como algoritmos como el de L'Ecuyer, que generan n\'umeros pseudo-aleatorion, son de enorme utilidad para una amplia cantidad de estudio de modelos y an\'alisis. En este caso nos resulta clave para abordar el del sistema de propulsión del USS Enterprise.

%\begin{thebibliography}{1}

%\bibitem{lamport}
%Leslie Lamport,
%\newblock {\em A Document Preparation System: {\LaTeX} User's Guide and
%  Reference Manual},
%\newblock Addison-Wesley, Reading, MA, 2nd edition, 1994.
%\newblock Be sure to get the updated version for \latexiie!

%\bibitem{goossens}
%Michel Goossens, Frank Mittelbach, and Alexander Samarin,
%\newblock {\em The {\LaTeX} Companion},
%\newblock Addison-Wesley, Reading, MA, 1994.

%\end{thebibliography}
%\begin{thebibliography}{2}
%\bibitem [1]{1} Apostol T.M., \textit{Volumen 1. Calculus. Segunda Edición}, Reverté, 1982
%\bibitem [2]{2} Mathews J.H., Fink K.D., \textit{Métodos Numéricos con Matlab. Tercera Edición}, Prentice Hall, 2003
%\end{thebibliography}

%----------------------------------------------------------------------

%\begin{biography}{Gregory L. Plett}
%(S'97) was born in Ottawa, ON, in 1968. He received the B.Eng.\ degree
%in computer systems engineering with high distinction from Carleton
%University, Ottawa, in 1990, and the M.S.\ degree in electrical
%engineering from Stanford University, CA, in 1992.  He is currently a
%Ph.D.\ candidate at Stanford University, where he is researching
%aspects of adaptive control under the supervision of Professor Bernard
%Widrow.
%\end{biography}


%\begin{biography}{Istv\'{a}n Koll\'{a}r}
%(M'87--SM'93--F'97) was born in Budapest, Hungary, in 1954. He graduated
%in electrical engineering from the Technical University of Budapest in
%1977 and in 1985 received the degree ``Candidate of Sciences'' (the
%equivalent of Ph.D.) from the Hungarian Academy of Sciences, and the
%degree dr.tech.\ from the Technical University of Budapest.
\begin{thebibliography}{1}
\bibitem [1]{1} Hertz J., Krogh A., Palmer R.G., \textit{Introduction to the theory of neural computation, Westview Press,1991}
%\bibitem [2]{2} Prueba Chi2: http://es.wikipedia.org/wiki/Prueba\_\%CF\%87\%C2\%B2
%\bibitem [3]{3} Prueba de Kolmog\'orov-Smirnov: http://es.wikipedia.org/wiki/Prueba\_de\_Kolmog\'orov-Smirnov
\end{thebibliography}

%From September 1993 to June 1995, he was a Fulbright Scholar and
%visiting associate professor in the Department of Electrical
%Engineering, Stanford University. He is professor of electrical
%engineering, Department of Measurement and Information Systems,
%Technical University of Budapest. His research interests span the
%areas of digital and analog signal processing, measurement theory, and
%system identification. He has published about 50 scientific papers and
%is coauthor of the book \emph{Technology of Electrical Measurements},
%(L.\ Schnell, ed., Wiley, 1993). He authored the \emph{Frequency
%Domain System Identification Toolbox} for Matlab.
%\end{biography}

\end{document}
